import 'package:backend.purchases/infrastructure/dtos/api/api_time_dto.dart';
import 'package:backend.purchases/infrastructure/dtos/api/app_store/api_app_store_transaction_offer_type_dto.dart';
import 'package:backend.purchases/infrastructure/dtos/api/app_store/api_app_store_transaction_ownership_type_dto.dart';
import 'package:backend.purchases/infrastructure/dtos/api/app_store/api_app_store_transaction_revocation_info_dto.dart';

const kApiAppStoreTransactionIdKey = 'id';
const kApiAppStoreTransactionTimeKey = 'time';
const kApiAppStoreTransactionOfferTypeKey = 'offer_type';
const kApiAppStoreTransactionOwnershipTypeKey = 'ownership_type';
const kApiAppStoreTransactionRevocationInfoKey = 'revocation_info';

abstract class ApiAppStoreTransactionDto {
  String get id;

  ApiTimeDto get timeDto;

  ApiAppStoreTransactionOfferTypeDto get offerTypeDto;

  ApiAppStoreTransactionOwnershipTypeDto get ownershipTypeDto;

  ApiAppStoreTransactionRevocationInfoDto? get revocationInfoDto;

  Map<String, dynamic> toJson();
}
